// pages/owner/sub/list-form.js
const APP = getApp();
const date = new Date();

Page({

    /**
     * 页面的初始数据
     */
    data: {
        options:{},
        pageinfo:{
            title:'',
            content:'',
        },
        //单位
        unitId:0,
        unitList:[],
        unitIndex:-1,
        unitText:'请选择单位',
        //时间
        currentDate:date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate(),
        endDate:date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate(),
        //类型
        category:1,
        //上传附件
        uploadFileObj:{
            images:[],videos:[],audios:[],documents:[]
        },
        uploadRef:null,
        //提交
        isSubmitLoading: false, //提交状态
        
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        let _this = this;
        //控制权限
        APP.appauth.setAuthSetting();
        //初始化数据
        this.setData({
            options:options
        },function(){
            _this.init();
        });
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    // ====================【逻辑区域】====================

    /** 初始化 */
    init(){
        let _this = this;
        if(_this.data.options.tid){
            this.initPageData(function(){
                _this.initUnitData();
            });
        }else{
            _this.initUnitData();
        }
    },

    initPageData(completedcallback){
        let _this = this;
        APP._post('/Form/info', {
            id:_this.data.options.tid,
        }, false, function (resData) {
            //执行成功
            _this.setData({
                pageinfo:{
                    title:resData.title,
                    content:resData.content,
                },
                unitId:resData.unitId,
            },function(){
                _this.data.uploadRef.data.setUploadFiles(resData.attachmentList);
            });
        }, function (res) {
            //执行失败
        }, function (res) {
            //执行完成
            completedcallback && completedcallback();
        });
    },
    initUnitData(completedcallback){
        let _this = this;

        if(_this.data.unitIndex!=-1) return;

        APP._post('/Data/options', {}, false, function (resData) {
            //执行成功
            let list = resData.list,tmpUnitlist=[];
                 //设置领导或单位列表
                for (let i = 0; i < list.length; i++) {
                    tmpUnitlist.push({
                        label: list[i].title,
                        value: list[i].id
                    });
                    if(list[i].id == _this.data.unitId){
                        _this.data.unitIndex = i;
                        _this.data.unitText = list[i].title; 
                    }
                }
                _this.setData({
                    unitList: tmpUnitlist,
                    unitIndex:_this.data.unitIndex,
                    unitText:_this.data.unitText,
                });
        }, function (res) {
            //执行失败
        }, function (res) {
            //执行完成
            completedcallback && completedcallback();
        });
    },

    /** 操作 */

    /* 事件 */

     //单位绑定
     bindUnitPickerChange(e) {
        let index = e.detail.value;
        this.setData({
            unitIndex: index,
            unitText: this.data.unitList[index].label,
        });
    },

    bindCategoryChange(e){
        let tmpVal = parseInt(e.detail.value);
        this.setData({
            category:parseInt(tmpVal),
        });
    },

    bindSubmitForm: function (eventhandle) {
        let _this = this;
        let formvalues = eventhandle.detail.value;
        //验证姓名
        if(formvalues.realname.length>0){
            // let regex = /^[\u4E00-\u9FA5A-Za-z]+$/; //中英文
            let regex = /^[\u4E00-\u9FA5]+$/; //纯中文
            if(!regex.test(formvalues.realname)){
                APP.apptool.showToastInfo('姓名只能是汉字!');
                return;
            }
        }
        //验证手机号
        if(formvalues.phone.length>0){
            // let regex = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/;
            let regex = /^1[3456789]\d{9}$/;
            if(!regex.test(formvalues.phone)){
                APP.apptool.showToastInfo('手机号码格式不正确!');
                return;
            }
        }
        //身份证号
        if(formvalues.idcard.length>0){
            let chk = APP.apptool.chkIdcard(formvalues.idcard);
            if(!chk[0]){
                APP.apptool.showToastInfo('身份证号格式不正确!');
                return;
            }
        }
        //验证邮箱
        if(formvalues.email.length>0){
            let regex = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/;
            if(!regex.test(formvalues.email)){
                APP.apptool.showToastInfo('电子邮箱格式不正确!');
                return;
            }
        }
        //单位
        if (this.data.unitIndex < 0) {
            APP.apptool.showToastInfo(this.data.unitText);
            return false;
        }
        //时间
        if (this.data.currentDate.length < 1) {
            APP.apptool.showToastInfo('请选择时间!');
            return;
        }
        //标题
        if (formvalues.title.length < 1) {
            APP.apptool.showToastInfo('请输入标题!');
            return;
        }
        //内容
        if (formvalues.content.length < 1) {
            APP.apptool.showToastInfo('请输入具体内容!');
            return;
        }
        
        //组装上传文件数组
        let tmpFiles = _this.data.uploadRef.data.getUploadFiles();
        let tmpFilenames = [],tmpFilepaths = [],tmpFiletypes = [];
        for(let i=0; i<tmpFiles.length; i++){
            tmpFilenames.push(tmpFiles[i].originalname);
            tmpFilepaths.push(tmpFiles[i].pathname);
            tmpFiletypes.push(tmpFiles[i].type);
        }
        
        //禁用操作
        _this.setData({
            isSubmitLoading: true,
        });
        APP._post('/Form/submit', {
            name: formvalues.realname,
            phone: formvalues.phone,
            idCardNo:formvalues.idcard,
            email: formvalues.email,
            title: formvalues.title,
            content: formvalues.content,
            fileNames: tmpFilenames.join(','),
            filePaths: tmpFilepaths.join(','),
            fileTypes:tmpFiletypes.join(','),
        },false, function (resData,res) {
            //执行成功
            // //[直接返回上页]
            // APP.apptool.showToastInfo(res.caMsg, null, 2000, function (res) {
            //     wx.navigateBack({
            //         delta: 1,
            //     });
            // });
            //[返回刷新上页数据]
            APP.apptool.showToastInfo(res.caMsg, null, 2000, function (res) {
                APP.apptool.navigateBackPage(1, function (targetPage) {
                    //需刷新数据页面，必须实现refreshPage()方法
                    targetPage.refreshPage();
                });
            });
        }, function (res) {
            //执行失败
        }, function (res) {
            //执行完成
            //恢复操作
            _this.setData({
                isSubmitLoading: false,
            });
        });
    },
    //设置组件引用
    bindUploadReffer(ref){
        this.data.uploadRef = ref.detail;
    },
})